package main

import "fmt"

func main() {
	var choice int8
	var flag bool = true
	state := ""
	hasDeposit := false
	//定义账户余额
	balance := 10000.0
	//每次收支的金额
	money := 0.0
	//说明
	note := ""
	//收支详情
	detail := "收支\t账户金额\t\t收支金额\t\t说明"
	for {
		fmt.Println("--------------家庭收支记账软件--------------")
		fmt.Println("              1.收支明细                   ")
		fmt.Println("              2.收入登记                  ")
		fmt.Println("              3.支出登记                   ")
		fmt.Println("              4.退出                   ")
		fmt.Println("              请选择1-4                   ")
		_, _ = fmt.Scanln(&choice)
		switch choice {
		case 1:
			if hasDeposit == false {
				fmt.Println("您没有任何存取款记录")
			} else {
				fmt.Println("--------------当前收支明细记录--------------")
				fmt.Println(detail)
			}

		case 2:
			fmt.Println("本次收入金额：")
			_, _ = fmt.Scanln(&money)
			balance += money
			fmt.Println("本次收入说明：")
			_, _ = fmt.Scanln(&note)
			detail += fmt.Sprintf("\n收入\t%v\t%v\t%v", balance, money, note)
			hasDeposit = true
		case 3:
			fmt.Println("登记支出")
			fmt.Println("请输入本次支出的金额")
			_, _ = fmt.Scanln(&money)
			if money < balance {
				balance -= money
			} else {
				fmt.Println("您的余额不足")
				break
			}
			fmt.Println("本次支出说明：")
			_, _ = fmt.Scanln(&note)
			detail += fmt.Sprintf("\n支出\t%v\t%v\t%v", balance, money, note)
			hasDeposit = true
		case 4:
			fmt.Println("确认要退出吗？y/n,按y退出，n继续")
			_, _ = fmt.Scanln(&state)
			if state == "y" {
				flag = false
			}
		default:
			fmt.Println("请输入正确选项")
		}
		if !flag {
			break
		}
	}
	fmt.Println("您已经成功退出")
}
